# Copyright (c) 2013, Hannes Würfel <hannes.wuerfel@student.hpi.uni-potsdam.de>
# Computer Graphics Systems Group at the Hasso-Plattner-Institute, Germany
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#	* Redistributions of source code must retain the above copyright notice,
#	  this list of conditions and the following disclaimer.
#	* Redistributions in binary form must reproduce the above copyright
#	  notice, this list of conditions and the following disclaimer in the
#	  documentation and/or other materials provided with the distribution.
#	* Neither the name of the Computer Graphics Systems Group at the
#	  Hasso-Plattner-Institute (HPI), Germany nor the names of its
#     contributors may be used to endorse or promote products derived from
#     this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.

# Common helper methods and macros
# This module defines
# configureSourceGroups(), adds source filters to the project
# configureDebugPostfix(), appends debug binaries with the CMAKE_DEBUG_POSTFIX specified
#

function(configureSourceGroups)
	SOURCE_GROUP(src REGULAR_EXPRESSION "c$|cpp$|ui$|qrc$")
	SOURCE_GROUP(header REGULAR_EXPRESSION "hpp$|h$")
	SOURCE_GROUP(cuda REGULAR_EXPRESSION "cu$")
	SOURCE_GROUP(generated REGULAR_EXPRESSION "cxx$|ui_|ptx")
	SOURCE_GROUP(ui REGULAR_EXPRESSION "ui$")
	SOURCE_GROUP(fx REGULAR_EXPRESSION "fx$|glsl$|hlsl$|geom$|vert$|frag$")
endfunction(configureSourceGroups)

function(configureDebugPostfix suffix)
	set_target_properties(${target} 
		PROPERTIES DEBUG_POSTFIX ${suffix}
		RELEASE_POSTFIX ""
	) 
endfunction()